import { message } from 'ant-design-vue';
import type { ApiResult } from './types';
import { ApiResultType } from './types';

/**
 * 处理API操作结果的通用方法
 * @param result API返回结果
 * @param onSuccess 成功时的回调函数
 * @param onError 失败时的回调函数
 */
export async function handleApiResult(
  result: ApiResult,
  onSuccess?: () => void | Promise<void>,
  onError?: (message?: string) => void | Promise<void>,
) {
  if (result.resultType === ApiResultType.Info) {
    message.info(result.message);
    return true;
  }

  if (result.resultType === ApiResultType.Success) {
    message.success(result.message || '操作成功');
    await onSuccess?.();
    return true;
  }

  const errorMessage = result.message || '操作失败';
  message.error(errorMessage);
  await onError?.(errorMessage);
  return false;
}
